Skip to content

feat: prove that the Buchi congruence has the saturation property#325

Merged
fmontesi merged 59 commits intoleanprover:mainfrom
ctchou:buchi-saturation
Mar 17, 2026
Merged

feat: prove that the Buchi congruence has the saturation property#325
fmontesi merged 59 commits intoleanprover:mainfrom
ctchou:buchi-saturation

Conversation

@ctchou
Copy link
Contributor

@ctchou ctchou commented Feb 6, 2026

This PR proves that the Buchi congruence introduced in #278 has the saturation property defined in Cslib.Foundations.Data.Set.Saturation. More precisely, the family of omega-languages of the form U * V^ω, where U and V are equivalence classes of the Buchi congruence, saturates the omega-language accepted by the underlying Buchi automaton. This proof is the hardest step in proving the closure of ω-regular languages under complementation and explains why the Buchi congruence is defined the way it is. Some miscellaneous results about LTS and infinite sequences that are needed by the proof are also added.

fmontesi and others added 30 commits January 11, 2026 13:15
Copy link
Collaborator

@chenson2018 chenson2018 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As I mention I've not fully reviewed buchiFamily_saturation, but here is an initial review.

@ctchou ctchou mentioned this pull request Feb 22, 2026
Copy link
Collaborator

@fmontesi fmontesi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks pretty good to me, just minor things.

@chenson2018
Copy link
Collaborator

My delay in approving this is because of buchiFamily_saturation. I have looked at this off and on and could make some incremental grind improvements, but I don't have the subject expertise here. Is there anything that can be split off in separate lemmas? The existential from mem_buchiFamily seems to make this awkward, but is there any way this could be reworked more cleanly?

@ctchou
Copy link
Contributor Author

ctchou commented Mar 3, 2026

We can work on this after I get back from my trip on March 12. I don't have my laptop with me now.

@ctchou
Copy link
Contributor Author

ctchou commented Mar 14, 2026

@chenson2018 Could you elaborate on your last comment? I'm not sure I understand it. buchiFamly is an indexed family of omega-regular languages, where each index is a pair of equivalence classes of na.BuchiCongruence. The theorem men_buchiFamily merely relates a member of such a language with the two equivalence classes of its index. I don't think the proof of buchiFamily_saturation can be simplified much. If you still have the survey article by W. Thomas I sent you, this proof is essentially a formalization of the proof of part (a) of lemma 2.2 on page 140.

@chenson2018
Copy link
Collaborator

@ctchou Let me take another look and at least add the cleanups to grind usage I'd done locally. My question was essentially if you can rephrase the existentials to be "constructive" so it'd be easier to extract some smaller lemmas.

@ctchou
Copy link
Contributor Author

ctchou commented Mar 14, 2026

I don't think that's possible. In essence, here we are starting with something like x ∈ U * V^ω. Both the concatenation operation * and the omega power operation are essentially nondeterministic operations. For example, x ∈ U * V^ω merely says that x is the concatenation of some finite sequence from U followed by some infinite sequence from V^ω. We have no other information and no way to avoid the existential quantifiers.

@chenson2018
Copy link
Collaborator

@ctchou Please see my last commit and let me know what you think. My aim here was to as much as possible organize things into as few calls to grind as possible and to keep the number of available hypothesis minimized at each area of the proof.

(There is one particularly problematic call to grind I will point out separately.)

Copy link
Collaborator

@chenson2018 chenson2018 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the patience with a longer review!

@ctchou
Copy link
Contributor Author

ctchou commented Mar 15, 2026

@chenson2018 It's a pleasure working with you.

@fmontesi fmontesi added this pull request to the merge queue Mar 17, 2026
Merged via the queue into leanprover:main with commit 042218c Mar 17, 2026
2 checks passed
@ctchou ctchou deleted the buchi-saturation branch March 17, 2026 19:59
m-ow pushed a commit to m-ow/cslib that referenced this pull request Mar 17, 2026
…anprover#325)

This PR proves that the Buchi congruence introduced in leanprover#278 has the
saturation property defined in `Cslib.Foundations.Data.Set.Saturation`.
More precisely, the family of omega-languages of the form `U * V^ω`,
where `U` and `V` are equivalence classes of the Buchi congruence,
saturates the omega-language accepted by the underlying Buchi automaton.
This proof is the hardest step in proving the closure of ω-regular
languages under complementation and explains why the Buchi congruence is
defined the way it is. Some miscellaneous results about LTS and infinite
sequences that are needed by the proof are also added.

---------

Co-authored-by: Fabrizio Montesi <famontesi@gmail.com>
Co-authored-by: Chris Henson <chrishenson.net@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants